package com.wy.project.controller;

import com.wy.project.entity.PdInfoReqsModule;
import com.wy.project.entity.ProductApprovalInfo;
import com.wy.project.entity.ProductInfo;
import com.wy.project.service.IPdInfoReqsService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 *
 * @author wysk
 * @since 2021-01-16
 */
@RestController
@RequestMapping("/project/pd-info-reqs")
@CrossOrigin
public class PdInfoReqsController {

    @Resource
    IPdInfoReqsService pdInfoReqsService;



    /**
     * 功能需求信息存为草稿(创建)
     * @param productInfo 要保存的信息
     */
    @PostMapping("/save4Draft")
    public void save4Draft(@RequestBody ProductInfo productInfo){
        pdInfoReqsService.save4Draft(productInfo);
    }


    /**
     * 功能需求信息提交审核(创建)
     * @param productInfo 要提交审核的信息
     */
    @PostMapping("/save4Approval")
    public void save4Approval(@RequestBody ProductInfo productInfo){
        pdInfoReqsService.save4Approval(productInfo);
    }


    /**
     * 功能需求信息存为草稿(修改)
     * @param productInfo 要修改的信息
     */
    @PostMapping("/edit4Draft")
    public void edit4Draft(@RequestBody ProductInfo productInfo){
        pdInfoReqsService.edit4Draft(productInfo);
    }


    /**
     * 功能需求信息提交审核(修改)
     * @param productInfo 要提交审核的信息
     */
    @PostMapping("/edit4Approval")
    public void edit4Approval(@RequestBody ProductInfo productInfo){
        pdInfoReqsService.edit4Approval(productInfo);
    }

    /**
     * 功能需求信息审核通过
     * @param productApprovalInfo 审核记录
     */
    @PostMapping("/pass")
    public void  pass(@RequestBody ProductApprovalInfo productApprovalInfo){
        pdInfoReqsService.pass(productApprovalInfo);
    }

    /**
     * 功能需求信息审核不通过
     * @param productApprovalInfo 审核记录
     */
    @PostMapping("/notPass")
    public void  notPass(@RequestBody ProductApprovalInfo productApprovalInfo){
        pdInfoReqsService.notPass(productApprovalInfo);
    }



    /**
     * 功能需求信息修订
     * 审核失败之后,进行信息的修改,之后提交审核
     * @param productInfo 要审核的信息
     */
    @PostMapping("/revise")
    public void revise(@RequestBody ProductInfo productInfo){
        pdInfoReqsService.revise(productInfo);
    }



    /**
     * 功能需求信息作废
     * @param code 要作废的信息标识
     */
    @GetMapping("/abort/{code}")
    public void abort(@PathVariable String code){
        pdInfoReqsService.abort(code);
    }

    /**
     * 产品功能模块信息
     * 查看详情
     * @param code 要查看的标识
     * @return 详情信息
     */
    @GetMapping("/detail/{code}")
    public List<PdInfoReqsModule> detail(@PathVariable String code){
        return pdInfoReqsService.detail(code);
    }
}
